package com.mallcai.bigdata.ladon.service.system;

import com.mallcai.bigdata.ladon.dpl.entity.system.Role;

import java.util.List;
import java.util.Map;

/**
 * Created by oneape<oneape15@163.com>
 * Created 2019-06-21 19:56.
 * Modify:
 */
public interface IRoleService {

    /**
     * 根据条件查询角色列表
     *
     * @param params Map
     * @return List
     */
    List<Role> getByParams(Map<String, Object> params);

    /**
     * 获取所有角色列表
     *
     * @return List
     */
    List<Role> getAllRoles();

    /**
     * 添加角色
     *
     * @param role Role
     * @return int
     */
    int addRole(Role role);

    /**
     * 修改角色
     *
     * @param role Role
     * @return int
     */
    int updateRole(Role role);

    /**
     * 删除角色
     *
     * @param role Role
     * @return int
     */
    int deleteRole(Role role);

    /**
     * 保存角色资源权限信息
     *
     * @param roleId  Long 角色Id
     * @param resMask Map 资源权限Map  key-资源Id, value - 权限Mask
     * @return int
     */
    int saveRoleRes(Long roleId, Map<Long, List<Integer>> resMask);

    /**
     * 保存角色报表权限信息
     *
     * @param roleId    Long 角色Id
     * @param reportIds List 报表Id列表
     * @return int
     */
    int saveRoleReport(Long roleId, List<Long> reportIds);

    /**
     * 获取角色资源权限
     *
     * @param roleId Long
     * @return Map
     */
    Map<Long, List<Integer>> getRoleRes(Long roleId);

    /**
     * 获取角色报表权限
     *
     * @param roleId Long
     * @return List
     */
    List<Long> getRoleReport(Long roleId);

    /**
     * 根据角色Id列表,获取资源
     *
     * @param roleIds List
     * @return Map
     */
    Map<Long, List<Integer>> getRoleRes(List<Long> roleIds);
}
